#pragma once
#include <zmq.h>
#include <memory>
#include <string>

class pzmq_data
{
private:
    zmq_msg_t _msg;

public:
    pzmq_data();
    ~pzmq_data();

    // 返回消息内容的共享指针字符串
    std::shared_ptr<std::string> GetString();
    // 返回消息字符串形式副本
    std::string String();
    // 返回消息原始指针
    void *Data();
    // 返回消息指针
    zmq_msg_t *Get();
    // 返回消息大小
    size_t Size();

    // 序列化
    static std::string SetParam(std::string param0, std::string param1);
    // 反序列化
    std::string GetParam(int index, const std::string &idata = "");
};